package com.ruoyi.system.mapper;

import java.util.List;

import com.ruoyi.system.domain.vo.DayElecInfoVo;
import com.ruoyi.system.domain.DayElecInfo;
import com.ruoyi.system.domain.dto.ElecInfoDto;
import com.ruoyi.system.domain.vo.ElecCityCountVo;
import com.ruoyi.system.domain.vo.WeekElecInfoVo;
import org.apache.ibatis.annotations.Param;

/**
 * 每日用电情况Mapper接口
 *
 * @author handsome
 * @date 2024-07-03
 */
public interface DayElecInfoMapper {
    /**
     * 查询每日用电情况
     *
     * @param userId 每日用电情况主键
     * @return 每日用电情况
     */
    public DayElecInfo selectDayElecInfoByUserId(Long userId);

    /**
     * 查询昨日城市用电情况
     *
     * @return
     */
    public List<ElecCityCountVo> selectCityElecSumYesterday();

    /**
     * 查询近1周的用电量
     *
     * @param userId
     * @return
     */
    public List<DayElecInfoVo> selectLastWeekElecByUserId(@Param("userId") Long userId);

    /**
     * 查询近1月的每周用电量
     *
     * @param userId
     * @return
     */
    public List<WeekElecInfoVo> selectLastMonthElecByUserId(@Param("userId") Long userId);

    /**
     * 查询用户用电情况列表
     *
     * @param dayElecInfo 每日用电情况
     * @return 每日用电情况集合
     */
    public List<DayElecInfo> selectDayElecInfoList(DayElecInfo dayElecInfo);

    /**
     * 新增每日用电情况
     *
     * @param dayElecInfo 每日用电情况
     * @return 结果
     */
    public int insertDayElecInfo(ElecInfoDto dayElecInfo);

    /**
     * 修改每日用电情况
     *
     * @param dayElecInfo 每日用电情况
     * @return 结果
     */
    public int updateDayElecInfo(DayElecInfo dayElecInfo);

    /**
     * 删除每日用电情况
     *
     * @param userId 每日用电情况主键
     * @return 结果
     */
    public int deleteDayElecInfoByUserId(Long userId);

    /**
     * 批量删除每日用电情况
     *
     * @param userIds 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteDayElecInfoByUserIds(Long[] userIds);
}
